#!/bin/bash
Deploy_Path=`cd $(dirname $0); pwd -P`

########################################################
#全局部署参数
########################################################

#linux
ROOT_PASSWD='test'
MGR_ADMIN_USER='admin'
MGR_ADMIN_PASS='test'

#k8s docker binary
Deploy_Mode=binary

#当前支持centos、opencloudos和ubuntu三种类型，centos可适用于rocky
OS_Type='ubuntu'
#操作系统release版本，centos、opencloudos填写为8或9，ubuntu填写版本代号（apt镜像名）比如20.04LTS填写focal
OS_Version='focal'

#ceph version(填写版本代号或版本号，如pacific、16.2.14)
ceph_version='16.2.13'


#节点角色
mon_nodes='node-1 node-2 node-3'
mgr_nodes='node-1 node-2 node-3'
mds_nodes='node-1 node-2 node-3'
osd_nodes='node-1 node-2 node-3'
Ceph_Nodes='node-1 node-2 node-3'
#Deploy_Node就是部署脚本的执行节点，也必须是第一个mon节点，仅当Deploy_Mode=binary或docker时有效
Deploy_Node='node-1.mgmt.osk'

#ceph全局部署参数
Cluster_Domain='mgmt.osk'
MGMT_Domain='mgmt.osk'
Cluster_Name=ceph
Public_CIDR='192.168.204.48/28'
Cluster_CIDR='192.168.204.16/28'

#ssh选项
ssh_port='22'

########################################################
#任务流操作控制
########################################################
#osd全局缺省操作(当/var/lib/ceph/osd-env/目录中某个或某些osd的env文件不存在时，默认的容器启动操作流程)(有效值为: start rebuild recovery create destroy)
OSD_DEF_OPS=start
MON_DEF_OPS=

########################################################
#安装时钟同步服务chrony
########################################################
Chrony='no'
Chrony_Sources='ntp.aliyun.com'

########################################################
#mon相关部署参数
########################################################
#Auth_Mode是ceph-mon的认证模式，只有none和cephx这两种模式
Auth_Mode='none'
#禁用允许不安全的mon global_id reclaim通信，yes为禁用，no为不禁用
Disable_Insecure_Global_Id_Reclaim='no'
#是否开启mgsr2
Enable_Mgsr2='no'
########################################################
#osd相关部署参数
########################################################
OSD_Type='bluestore'
#每个节点上的osd数量，用于计算节点上的osd id，注意这里填写的值必须大于或等于实际每个节点的osd数量
Node_OSDs=30
#是否启用bcache，当ceph-osd.map中使用fusion架构部署osd时，该选项自动失效
Enable_BCache='yes'
#bcache缓存分区大小，以GB为单位
BCache_Size=40
#bcache块大小，填写扇区大小，按照缓存盘和数据盘这两种类型的硬盘中最大的扇区填写
BCache_Block_Size=4k
#bcache的桶大小，这个按照缓存盘的擦除块大小填写，一般为4m
BCache_Bucket_Size=4m
#bluestore的block.db分区大小，以GB为单位，当block.db、block.wal以及block.data都在同一个硬盘时（fusion模式），redhat推荐block.db分区（fusion模式）最小为硬盘总容量的1%-2%，如果使用rgw，则最小为4%-6%，社区默认为10%
Block_DB_Size=230
#bluestore的block.wal分区大小，以GB为单位
Block_WAL_Size=16
#在硬盘最后空间划出一个分区，用于平台运行中针对单盘性能测试
Test_Part_Size=10
#一个osd进程可占用的最大内存，单位为Byte
Osd_Memory_Target=1073741824

#########################################################
#mon、mgr、mds服务相关变量（本段参数禁止修改）
#########################################################
Hostnames=`cat /etc/hosts|egrep -v "^$|^#"|grep $MGMT_Domain |awk '{print $2}'`
Ceph_MGMT_Localhost_FQDN=`cat /etc/hosts|egrep -v "^$|^#"|grep $MGMT_Domain |awk '{print $2}'`
Ceph_Cluster_Localhost_FQDN=`cat /etc/hosts|egrep -v "^$|^#"|grep $Cluster_Domain |awk '{print $2}'`
Ceph_Hostnames=`sed -n "/^node-[0-9]*.mgmt/"p $Deploy_Path/ceph-osd.map |awk '{print $1}'|sort -u`
MON_IPs=`cat /etc/hosts |egrep -v "^#|^$" |grep -w $Cluster_Name |grep mon |awk '{print $1}'`
MON_Nodes=`cat /etc/hosts |egrep -v "^#|^$" |grep -w $Cluster_Name |grep mon |awk '{print $1}'`
MGR_Nodes=`cat /etc/hosts |egrep -v "^#|^$" |grep -w $Cluster_Name |grep mgr |awk '{print $1}'`
MDS_Nodes=`cat /etc/hosts |egrep -v "^#|^$" |grep -w $Cluster_Name |grep mds |awk '{print $1}'`
OSD_Nodes=`cat /etc/hosts |egrep -v "^#|^$" |grep -w $Cluster_Name |grep osd |awk '{print $1}'`
mgmt_ips=`cat /etc/hosts|egrep -v "^$|^#"|grep $Cluster_Domain |awk '{print $1}'`



##########################################################
#节点唯一变量（本段参数禁止修改）
##########################################################
#本段变量与节点强相关，具有当前节点的唯一性
Node_FQDN=`hostname`
HostName=`hostname -s`
Host_IPs=`ip a |grep inet[^6]|sed -r 's#inet (.*)/[0-9].*#\1#'`

MON_IP=`cat /etc/hosts |egrep -v "^#|^$" |grep -w $Cluster_Name |grep mon|grep -w "$HostName"|awk '{print $1}'`
MON_NAME=$Node_FQDN
MGR_NAME=$Node_FQDN
MDS_NAME=$Node_FQDN
